﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CarCrash.Core.Model;
using NHibernate;
using CarCrash.Core.helper;
using NHibernate.Criterion;

namespace CarCrash.Core.Services
{
    /* 
     * Синглтон, сервис для доступа к покрытиям.
     */
    public class PavementService : GenericDaoService<Pavement>
    {

        public Pavement GetByName(string name) 
        {
            ISession session = NHibernateHelper.OpenSession();
            return session.CreateCriteria<Pavement>()
                .Add(Restrictions.Eq("Name", name))
                .UniqueResult<Pavement>();
        }


        // данная реализация не предназначена для многопоточности!
        private static PavementService instance;
        private PavementService() { }
        public static PavementService Instance
        {
            get
            {
                if (instance == null)
                {
                    instance = new PavementService();
                }
                return instance;
            }
        }

    }
}